package com.bona.dao.system;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.bona.dao.common.BaseDao;
import com.bona.model.system.SysFunctionModel;

public interface SysFunctionDao extends BaseDao {
	
	/**
	 * 获取菜单信息
	 * @param ids
	 * @return
	 */
	public List<SysFunctionModel> queryFunctionByIds(List<String> ids);
	
	
	/**
	 * 获取角色下的所有菜单
	 * @param roleIds
	 * @return
	 */
	public List<SysFunctionModel> queryFunctionByRoleIds(List<String> roleIds);
	
	/**
	 * 获取子菜单编号
	 * @param pid
	 * @return
	 */
	@Select("SELECT id FROM sys_function WHERE parentfunctionid=#{pid}")
	public List<String> queryChildFunctionIdsByPid(@Param("pid")String pid);
	
	/**
	 * 更新pid为当前id
	 * idlist	pid
	 * @param map
	 * @return
	 */
	public Integer updatePidToCurrentId(Map<String, Object> map);
	
	/** 获取菜单关联的角色菜单关联关系
	 * @param funcId
	 * @return
	 */
	@Select("SELECT id FROM sys_role_function WHERE functionid=#{funcId}")
	public List<String> queryRoleFunctionByFuncId(@Param("funcId")String funcId);
	
	/**
	 * 更新角色菜单关联关系中菜单编号为当前编号
	 * idlist funcid
	 * @return
	 */
	public Integer updateFuncIdToCurrentId(Map<String, Object> map);
	
	/** 删除所有菜单包含子菜单， 菜单角色关联关系
	 * @param funcId
	 * @return
	 */
	public Integer deleteRoleFunctionByFuncId(List<String> funcIdList);
}
